package com.yuanqi.dto;

import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 销售订单列表DTO - 用于前端订单列表显示
 */
@Data
public class SalesOrderListDTO {
    
    /** 订单ID */
    private Long id;
    
    /** 订单编号 */
    private String soCode;
    
    /** 客户ID */
    private Long customerId;
    
    /** 客户名称 */
    private String customerName;
    
    /** 联系电话 */
    private String contactPhone;
    
    /** 地区 */
    private String region;
    
    /** 详细地址 */
    private String shippingAddress;
    
    /** 销售负责人 */
    private String salesRep;
    
    /** 负责人电话 */
    private String respPhone;
    
    /** 销售日期 */
    private Date saleDate;
    
    /** 预计发货日期 */
    private Date expectedShipDate;
    
    /** 订单状态：0-草稿，1-已提交，2-部分出库，3-全部出库，4-已关闭 */
    private Integer status;
    
    /** 订单状态文本 */
    private String statusText;
    
    /** 备注 */
    private String remark;
    
    /** 订单总金额 */
    private BigDecimal totalAmount;
    
    /** 实收金额 */
    private BigDecimal receivedAmount;
    
    /** 未收金额 */
    private BigDecimal outstandingAmount;
    
    /** 创建时间 */
    private Date createdAt;
    
    /** 更新时间 */
    private Date updatedAt;
    
    /**
     * 获取状态文本
     */
    public String getStatusText() {
        if (status == null) return "未知";
        switch (status) {
            case 0: return "草稿";
            case 1: return "已提交";
            case 2: return "部分出库";
            case 3: return "全部出库";
            case 4: return "已关闭";
            default: return "未知";
        }
    }
    
    /**
     * 获取状态样式类
     */
    public String getStatusClass() {
        if (status == null) return "status-unknown";
        switch (status) {
            case 0: return "status-draft";
            case 1: return "status-submitted";
            case 2: return "status-partial";
            case 3: return "status-completed";
            case 4: return "status-closed";
            default: return "status-unknown";
        }
    }
}
